x86: Do not expose XSAVE/AVX to guests.
authorKeir Fraser <keir@xen.org>
Thu, 4 Nov 2010 16:29:47 +0000 (16:29 +0000)
committerKeir Fraser <keir@xen.org>
Thu, 4 Nov 2010 16:29:47 +0000 (16:29 +0000)
Signed-off-by: Keir Fraser <keir@xen.org>
tools/libxc/xc_cpuid_x86.c
xen/arch/x86/traps.c

index de68f263c604c1df0e7f612a408c75af0b0bd867..e517eb7733112227abd2b845f101307dfe613f7d 100644 (file)
@@ -195,8 +195,7 @@ static void xc_cpuid_hvm_policy(
                     bitmaskof(X86_FEATURE_SSE4_1) |
                     bitmaskof(X86_FEATURE_SSE4_2) |
                     bitmaskof(X86_FEATURE_POPCNT) |
-                    bitmaskof(X86_FEATURE_AES) |
-                    bitmaskof(X86_FEATURE_AVX));
+                    bitmaskof(X86_FEATURE_AES));
 
         regs[2] |= bitmaskof(X86_FEATURE_HYPERVISOR);
 
@@ -324,6 +323,7 @@ static void xc_cpuid_pv_policy(
         clear_bit(X86_FEATURE_XTPR, regs[2]);
         clear_bit(X86_FEATURE_PDCM, regs[2]);
         clear_bit(X86_FEATURE_DCA, regs[2]);
+        clear_bit(X86_FEATURE_XSAVE, regs[2]);
         set_bit(X86_FEATURE_HYPERVISOR, regs[2]);
         break;
     case 0x80000001:
index f91e3c8ae3b67dcbf41e001c3e17ade0d9b83aed..69bbe43cbb2971b31ef955d61fdee543831191aa 100644 (file)
@@ -795,6 +795,7 @@ static void pv_cpuid(struct cpu_user_regs *regs)
         __clear_bit(X86_FEATURE_XTPR % 32, &c);
         __clear_bit(X86_FEATURE_PDCM % 32, &c);
         __clear_bit(X86_FEATURE_DCA % 32, &c);
+        __clear_bit(X86_FEATURE_XSAVE % 32, &c);
         if ( !cpu_has_apic )
            __clear_bit(X86_FEATURE_X2APIC % 32, &c);
         __set_bit(X86_FEATURE_HYPERVISOR % 32, &c);